x, k = map(int,input().split())
print((1+(2*x-1)*pow(2,k,10**9+7))%(10**9+7) if x>0 else 0)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mp make_pair
#define p pair
#define vl vector<long long>
#define fr(i,a,b) for((i)=(a);(i)<=(b);(i)++)
#define rep(j,b) for((j)=0;(j)<(b);(j)++)
#define F first
#define S second
#define pb push_back
#define Y cout<<"YES\n";
#define N cout<<"NO\n";
#define all(v) (v).begin(), (v).end()
#define Sort(v) sort(all(v))
#define mod 1000000007
#define M LLONG_MAX
#define nl cout<<endl;
//ll dp[1e5 +1];
ll binary_exponetiation(ll a, ll b)
{
long long res = 1;
while (b > 0) {
if (b & 1)
res = (res * a) %mod;
//res%=mod;
a = a * a; a%=mod;
b >>= 1;
}
return res;
}
vl input_vec(ll n) { ll i,a; vl vec; rep(i,n) { cin>>a; vec.pb(a); } return vec; }
void solve()
{
ll plus=0, minus=0, minn,maxx,left=0, right=1,a,b,z,ans=0;
ll n,c,q,h,k, m,i=0,j=2,w,index=0,x=0,y,d,sum=0,mid,cnt=0,temp;
cin>>x>>k;
if(x==0) {cout<<0<<endl; return; }
ans= (((binary_exponetiation(2,k+1)%mod)*(x%mod))%mod)- binary_exponetiation(2,k) +1;
//cout<<max(ans,0LL)%mod<<endl;
cout << (ans % mod + mod) % mod << endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t=1; //cin>>t;
while(t--)
solve();
return 0;
}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |